(function () {

    class Animal {
        name: String;
        constructor(name: string) {
            this.name = name
        }
        sayHello() {
            console.log('动物再叫');

        }
    }

    class Dog extends Animal {
        age: number;
        constructor(name: string, age: number) {

            //*如果在子类中写了构造函数，在子类构造函数中必须对父类的构造函数进行调用
            super(name);//调用父类的构造函数
            this.age = age
        }
        sayHello() {
            // 在类的方法中 super就表示当前类的父类
            // super.sayHello()
            console.log('汪汪汪');

        }
    }

    const dog = new Dog('旺财', 3)
    console.log(dog);
    
    dog.sayHello();

})()